package estadistec.excepciones;

/**
 * Clase base para el manejo de excepciones.
 */
public class Excepcion extends RuntimeException {

	/**
	 * Versión para guardar.
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * Constructor por defecto
	 */
	public Excepcion() {
		super("Excepcion generica");
	}


	/**
	 * Constructor que se inicializa con la causa
	 */
	public Excepcion(Exception causa) {
		super("Excepcion generica", causa);
	}

	/**
	 * Constructor que se inicializa con la causa
	 */
	public Excepcion(String mensaje, Exception causa) {
		super(mensaje, causa);
	}

	/**
	 * Constructor que se inicializa con la causa
	 */
	public Excepcion(String mensaje) {
		super(mensaje);
	}

	/**
	 * Retorna un mensaje con la explicacion de lo ocurrido
	 */
	public String getMensaje() {
		return getMessage();
	}

	/**
	 * Retorna la exepcion ocurrida
	 */
	public Throwable getCausa() {
		return getCause();
	}

	/**
	 * Imprimir la pila de datos
	 */
	public void imprimirPilaRastreo() {
		System.err.println("\n El rastreo de la pila es:");
		this.printStackTrace();
	}

}

